import router from '@/router'
import type { Menus } from '@/types/user'

// 加载views下面的所有页面
const modules = import.meta.glob('../views/*/*.vue')
console.log('---modules---', modules)

// 书写一个动态添加路由的方法
export const addRoute = (menu: Menus[]) => {
  // 嵌套路由的组装
  const routes: { path: string; meta: { name: string }; component: any }[] = []

  // 遍历接口返回数据，将数据中的路由组装成routes类型数组
  menu.forEach(item => {
    item.children.forEach(childitem => {
      const componentName = `../views/${childitem.component}.vue`
      console.log('通过modules.glob获得到所有组件的键名', componentName)

      // 组装路由数据
      const route = {
        path: `${item.path}/${childitem.path}`.substring(1),
        meta: { name: childitem.meta.name },
        component: modules[componentName]
      }
      routes.push(route)
    })
  })
  console.log('---routes---', routes)
  // 遍历数组，将每一个嵌套路由一个个的添加到layout中
  routes.forEach(item => {
    router.addRoute('layout', item)
  })
}
